Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics
نویسنده
چکیده
Context: Refactoring is a maintenance task that refers to the process of restructuring software source code to enhance its quality without affecting its external behavior. Inspecting and analyzing the source code of the system under consideration to identify the classes in need of extract subclass refactoring (ESR) is a time consuming and costly process. Objective: This paper explores the abilities of several quality metrics considered individually and in combination to predict the classes in need of ESR. Method: For a given a class, this paper empirically investigates, using univariate logistic regression analysis, the abilities of 25 existing size, cohesion, and coupling metrics to predict whether the class is in need of restructuring by extracting a subclass from it. In addition, models of combined metrics based on multivariate logistic regression analysis were constructed and validated to predict the classes in need of ESR, and the best model is justifiably recommended. We explored the statistical relations between the values of the selected metrics and the decisions of the developers of six open source Java systems with respect to whether the classes require ESR. Results: The results indicate that there was a strong statistical relation between some of the quality metrics and the decision of whether ESR activity was required. From a statistical point of view, the recommended model of metrics has practical thresholds that lead to an outstanding classification of the classes into those that require ESR and those that do not. Conclusion: The proposed model can be applied to automatically predict the classes in need of ESR and present them as suggestions to developers working to enhance the system during the maintenance phase. In addition, the model is capable of ranking the classes of the system under consideration according to their degree of need of ESR.
منابع مشابه
Opportunities and challenges in deriving metric impacts from refactoring postconditions
Refactoring – transforming the source-code of an object-oriented program without changing its external observable behaviour – is a restructuring process aimed at resolving evolution obstacles. Currently however, the efficiency of the refactor process in terms of quality improvements remains unclear. Such quality improvement can be expressed in terms of an impact on OO metrics. The formalization...
متن کاملApplication of Artificial Neural Network for Predicting Maintainability Using Object-Oriented Metrics
Importance of software quality is increasing leading to development of new sophisticated techniques, which can be used in constructing models for predicting quality attributes. One such technique is Artificial Neural Network (ANN). This paper examined the application of ANN for software quality prediction using ObjectOriented (OO) metrics. Quality estimation includes estimating maintainability ...
متن کاملSupport vector Approach by using Radial Kernel Function for Prediction of Software Maintenance Effort on the basis of Multivariate approach
The connection among object oriented metrics and software maintenance effort is complex and non-linear. Therefore, there is wide research area in development and application of sophisticated techniques which can be used to construct models for predicting software maintenance effort. The aim of this paper is to evaluate Support Vector Machine for Regression in software maintainability prediction...
متن کاملAn Experiment in Refactoring an Object Oriented CASE Tool
This paper describes experience gained and lessons learned from restructuring OODesigner, a Computer Aided Software Engineering (CASE) tool that supports Object Modelling Technique (OMT). This tool supports a wide range of features such as constructing the three models of OMT, managing information repository, documenting class resources, automatically generating C++ and Java code, reverse engin...
متن کاملIdentifying refactoring opportunities in object-oriented code: A systematic literature review
Context: Identifying refactoring opportunities in object-oriented code is an important stage that precedes the actual refactoring process. Several techniques have been proposed in the literature to identify opportunities for various refactoring activities. Objective: This paper provides a systematic literature review of existing studies identifying opportunities for code refactoring activities....
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Information & Software Technology
دوره 54 شماره
صفحات -
تاریخ انتشار 2012